﻿using System;
using System.Collections;
using System.Linq;
using System.Web;


    public class Cinemas
    {
        public DBCinemas dbCinemas;
        public int codigoCinema;
        public String localidade;
        public String nomeCinema;
        public double latitude;
        public double longitude;

 

        public Cinemas(System.Data.Odbc.OdbcConnection con)
        {
            dbCinemas = new DBCinemas(con);
        }
        
        public ArrayList pedirLocalidades()
        {
            return dbCinemas.obterLocalidades();
        }

        public ArrayList pedirCinemas(String localidade_seleccionada)
        {
            return dbCinemas.obterCinemas(localidade_seleccionada);
        }

        public void pedirDadosCinema(String cinema)
        {
            nomeCinema = cinema;
            dbCinemas.obterDadosCinema(cinema, this);
        }

        public double pedirCaminhoMaisCurto(Clientes c,Mapa m)
        {
            dbCinemas.obterCoordenadas(nomeCinema, this);
            c.pedirLocalizacao();
            double dist=Mapa.calcularDistancia(latitude, longitude, c.latitude, c.longitude);
            return dist;
        }
        public bool inserirNomeDadosCinema(String nome, String local, double latitude, double longitude)
        {
            nomeCinema=nome;
            localidade = local;
            this.latitude = latitude;
            this.longitude = longitude;
            if (dbCinemas.verificaUnicidadeCinema(nome))
            {
                dbCinemas.inserirNomeDadosCinema(nomeCinema, localidade, latitude, longitude);
                return true;
            } else return false;
        }
        public void alteraNomeDadosCinema(String novoNome, String local, double latitude, double longitude)
        {

            localidade = local;
            this.latitude = latitude;
            this.longitude = longitude;
            dbCinemas.alteraNomeDadosCinema(nomeCinema, novoNome, local, latitude, longitude);
            nomeCinema = novoNome;
        }
        public void removerCinema()
        {
            dbCinemas.removerCinema(nomeCinema);
        }
        public Hashtable pedirListaCinemas()
        {
            return dbCinemas.obterListaCinemas();
        }
        public bool pedirVerificacao(String ccredito)
        {
            /***********A implementar no futuro**********\
            SistemaBancario sb = new SistemaBancario();
            return sb.verificar(ccredito);
            \********************************************/

            //Aleatório, test only:
            Random random = new Random();
            if(random.Next(0, 10)>=5)return true;
            else return false;
        }
        public void efectuarTransaccao(String ccredito,double valor)
        {
            /***********A implementar no futuro**********\
            SistemaBancario sb = new SistemaBancario();
            sb.efectuarTransaccao(ccredito,valor);
            \********************************************/
        }
    }
